Users desire to keep data synchronized on their portable devices. Data of portable terminals, such as portable computers, PDA terminals (personal digital assistant), mobile stations or pagers, can be synchronized with network application s, applications of desktop computers, or with other databases of the telecommunications system. In particular, data of calendar and e-mail applications are typically synchronized between desktop computers or other databases and portable devices. Also, additional devices may include the ability to synchronize information. For instance, a digital camera may be able to synchronize pictures with a central picture managing server, providing an easy way to upload images from a digital camera.
To improve synchronization of application data, a language known as synchronized markup language SyncML, which is based on the XML (extensible markup language), has been developed. By using a SyncML synchronization protocol, which dictates the encoding and decoding of messages into and out of the SyncML format, data of various applications can be synchronized between network terminals. The SyncML synchronization protocol functions both in wireless and in fixed networks and supports several transmission protocols.
The synchronization markup language (SyncML) technology is an open specification for data synchronization. In general, synchronization takes place between a terminal device (e.g., a mobile phone) and a server device (e.g., an application in a local PC). To be able to understand each other, the SyncML client (the mobile phone) and SyncML server (the PC) encode data to be transmitted between them as a SyncML document. The coding or decoding/parsing of SyncML document can be performed by separate application components available to end-user applications (for instance, a user interface). The use of the SyncML protocol provides interoperability between different devices when trying to synchronize information between them.
Despite the ease of interoperability once a client and a server has been authenticated and initialized with respect to each other, the initial setup process between a client and a new server can be difficult. In particular, user interaction is required to manually set up a new profile for each new server. While similar servers may exist, each instance of the server generally requires a separate profile on the client with its own session history for each server. Unless the separate profile exists for a server, the client refuses the synchronization requests from the server. The profile creation process commonly involves opening a SyncML configuration utility, creating a new profile for a new server on the client, and defining one or more settings to permit communication with the new server. Only after manual creation of the profile does the client permit synchronization with the server. This manual interaction may prohibit the adoption of SyncML as a usable standard among various platforms.
Further, user experience is often poor for devices requiring profiles. For instance, if a user has a Bluetooth and SyncML-enabled cell phone in a handbag or briefcase, the user is required to remove the SyncML-enabled cell phone and manually configure it to work with a new SyncML server in a car supporting Bluetooth. Otherwise, the SyncML-enabled cell phone may continually attempt to sync with the server in the car yet timeout because of the lack of an appropriate profile on the client. This is a poor user experience